home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 25 / AACD 25.iso / AACD / Magazine / Online / QMail / source / sig_block.c < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-15  |  643 b   |  41 lines

  1. #include <signal.h>
  2. #include "sig.h"
  3. #include "hassgprm.h"
  4.  
  5. void sig_block(sig)
  6. int sig;
  7. {
  8. #ifdef HASSIGPROCMASK
  9.   sigset_t ss;
  10.   sigemptyset(&ss);
  11.   sigaddset(&ss,sig);
  12.   sigprocmask(SIG_BLOCK,&ss,(sigset_t *) 0);
  13. #else
  14.   sigblock(1 << (sig - 1));
  15. #endif
  16. }
  17.  
  18. void sig_unblock(sig)
  19. int sig;
  20. {
  21. #ifdef HASSIGPROCMASK
  22.   sigset_t ss;
  23.   sigemptyset(&ss);
  24.   sigaddset(&ss,sig);
  25.   sigprocmask(SIG_UNBLOCK,&ss,(sigset_t *) 0);
  26. #else
  27.   sigsetmask(sigsetmask(~0) & ~(1 << (sig - 1)));
  28. #endif
  29. }
  30.  
  31. void sig_blocknone()
  32. {
  33. #ifdef HASSIGPROCMASK
  34.   sigset_t ss;
  35.   sigemptyset(&ss);
  36.   sigprocmask(SIG_SETMASK,&ss,(sigset_t *) 0);
  37. #else
  38.   sigsetmask(0);
  39. #endif
  40. }
  41.